package com.demo.test.rpc.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.config.ProviderConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.spring.context.annotation.DubboComponentScan;
import com.demo.test.rpc.config.properties.DubboProperties;
import com.demo.test.rpc.sysconst.TestRpcVersion;

//@Configuration
//@ConditionalOnBean(value=DubboProperties.class)
//@DubboComponentScan(basePackages = "com.demo.test.rpc.api.impl")
public class DubboConfig {
	
//	@Autowired
//	private DubboProperties dubboProperties;
//	
//	@Bean
//    public ApplicationConfig applicationConfig() {
//        ApplicationConfig applicationConfig = new ApplicationConfig();
//        applicationConfig.setName(dubboProperties.getAppName());
//        applicationConfig.setLogger(dubboProperties.getLogger());
//        return applicationConfig;
//    }
//
//    @Bean
//    public RegistryConfig registryConfig() {
//        RegistryConfig registryConfig = new RegistryConfig();
//        registryConfig.setAddress(dubboProperties.getRegistryAddress());
//        registryConfig.setFile(dubboProperties.getRegistryFile());
//        registryConfig.setClient("curator");
//        return registryConfig;
//    }
//    
//    @Bean
//    public ProtocolConfig protocolConfig() {
//    	ProtocolConfig protocolConfig = new ProtocolConfig();
//    	protocolConfig.setName(dubboProperties.getProtocolName());
//    	protocolConfig.setPort(-1);//同一服务器20880以上的随机不重复端口
//    	return protocolConfig;
//    }
//    
//    @Bean
//    public ProviderConfig providerConfig() {
//    	ProviderConfig providerConfig = new ProviderConfig();
//    	providerConfig.setVersion(TestRpcVersion.VERSION);
//    	return providerConfig;
//    }
  
}  
